from mcp.server.fastmcp import FastMCP

import os
import freecad
print("freecad module attributes:")
print(dir(freecad))
from freecad import  app
from freecad import part
mcp = FastMCP("Demo")
import freecad.gears.commands
@mcp.tool()
def create_gear(num_teeth=20,height=10,double_helix= True):
     """
     创建一个渐开线齿轮并导出为 STEP 文件。

     参数:
          num_teeth (int): 齿轮的齿数，默认值为 20。
          height (float): 齿轮的高度（厚度），默认值为 10。
          double_helix (bool): 是否启用双螺旋，默认值为 True。
     
     返回:
           savepath:生成的齿轮保存地址。
     """
     app.newDocument()
     gear = freecad.gears.commands.CreateInvoluteGear.create()
     gear.num_teeth = num_teeth
     gear.height = height
     gear.double_helix = double_helix
     app.ActiveDocument.recompute()
     savepath = os.path.join(os.path.dirname(__file__), "gear.step")
     part.export([gear], savepath)
     return savepath



if __name__ == "__main__":
     mcp.run()
 